package com.gable.report.dao;

import com.gable.report.model.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Author: 杨青桦
 * @Description:  医院报表总览页面
 * @Date: 2018/1/15 10:27
 */
public interface IChartsForHospitalOverviewDao {



    /**
     * @Author: 杨青桦
     * @Description: 查询医院所在地域
     * @Date: 2018/1/17 10:59
     * @param hospitalId
     * @return
     */
    Map<String,Object> queryHospitalRegion(Long hospitalId);



    /**
     * @Author: 杨青桦
     * @Description: 查询设备数量及设备金额及折旧率
     * @Date: 2018/1/15 10:29
     * @param map
     * @return
     */
    Map<String,Object> queryAssetsNumAndPrice(Map map);

    /**
     * @Author: 杨青桦
     * @Description:  查询当年总绩效情况
     * @Date: 2018/1/15 11:02
     * @param map
     * @return
     */
    ChartsOverviewConditionsView queryPerformance(Map map);



    /**
     * @Author: 杨青桦
     * @Description: 查询各设备分类的收支及同比
     * @Date: 2018/1/23 15:12
     * @param map
     * @return
     */
    List<ChartsOverviewConditionsView> queryPerformanceListForFirstType(Map map);


    /**
     * @Author: 杨青桦
     * @Description:  查询平均故障率
     * @Date: 2018/1/24 14:07
     * @param map
     * @return
     */
    ChartsOverviewConditionsView queryAvgFaultRate(Map map);


    /**
     * @Author: 杨青桦
     * @Description:  查询各设备分类平均故障率
     * @Date: 2018/1/24 14:07
     * @param map
     * @return
     */
    List<ChartsOverviewConditionsView> queryAvgFaultRateForFirstType(Map map);

    /**
     * 2018-1-20会议讨论后业务修改，暂时不用
     * @Author: 杨青桦
     * @Description: 查询运行时间
     * @Date: 2018/1/15 11:44
     * @param map
     * @return
     */
    Map<String,Object> queryRunTime(Map map);

    /**
     * @Author: 杨青桦
     * @Description:  查询运维情况(年度)
     * @Date: 2018/1/15 14:48
     * @param map
     * @return
     */
    Map<String,Object> queryMaintenanceConditionsByYear(Map map);


    /**
     * @Author: 杨青桦
     * @Description:  维修统计详情
     * @Date: 2018/1/31 13:46
     * @param map
     * @return
     */
    List<ChartsOverviewStatisticsView> queryRepairStatistics(Map map);

    /**
     * @Author: 杨青桦
     * @Description:  查询运维情况(当月)
     * @Date: 2018/1/15 14:48
     * @param map
     * @return
     */
    Map<String,Object> queryMaintenanceConditionsByMonth(Map map);


    /**
     * @Author: 杨青桦
     * @Description:  警示事项数量统计
     * @Date: 2018/1/17 14:51
     * @param map
     * @return
     */
    Map<String,Object> queryWarningItems(Map map);


    /**
     * @Author: 杨青桦
     * @Description:  紧急维修列表
     * @Date: 2018/1/18 17:04
     * @param map
     * @return
     */
    List<ChartsOverviewWarningView> queryExigencyRepairList(Map map);


    /**
     * @Author: 杨青桦
     * @Description:  高危故障列表
     * @Date: 2018/1/18 17:59
     * @param map
     * @return
     */
    List<ChartsOverviewWarningView> queryHighRiskRepairList(Map map);


    /**
     * @Author: 杨青桦
     * @Description: 强检提醒
     * @Date: 2018/1/19 12:04
     * @param map
     * @return
     */
    List<ChartsOverviewWarningView> queryPlanCompulsoryList(Map map);

    /**
     * @Author: 杨青桦
     * @Description: 保养提醒
     * @Date: 2018/1/19 12:04
     * @param map
     * @return
     */
    List<ChartsOverviewWarningView> queryPlanUpkeepList(Map map);


    /**
     * @Author: 杨青桦
     * @Description: 巡检提醒
     * @Date: 2018/1/19 12:04
     * @param map
     * @return
     */
    List<ChartsOverviewWarningView> queryPlanInspectionList(Map map);


    /**
     * @Author: 杨青桦
     * @Description:  设备参数监控
     * @Date: 2018/8/29 9:59
     * @param map
     * @return
     */
    List<ChartsOverviewWarningView> queryParameterEventList(Map map);


    /**
     * @Author: 杨青桦
     * @Description:  待办事项
     * @Date: 2018/3/20 16:03
     * @param map
     * @return
     */
    List<ChartsOverviewWarningView> queryToDoList(Map map);

    /**
     * @Author: 杨青桦
     * @Description:  查询重点设备
     * @Date: 2018/1/30 10:55
     * @param map
     * @return
     */
    List<ChartsAssetsBaseDataView> queryKeyPointAssets(Map map);

    /**
     * @Author: 杨青桦
     * @Description: 维修大小
     * @Date: 2018/1/30 14:54
     * @param map
     * @return
     */
    Map<String,Object> queryMaintainSize(Map map);


    /**
     * @Author: 杨青桦
     * @Description: 使用率
     * @Date: 2018/1/31 14:41
     * @param map
     * @return
     */
    List<Map<String,Object>> queryUsageRateForFirstType(Map map);


    /**
     * @Author: 杨青桦
     * @Description:  今年和去年总人次同比
     * @Date: 2018/10/8 16:35
     * @param map
     * @return
     */
    Map<String,Object> queryUsedCounts(Map map);



    /**
     * @Author: 杨青桦
     * @Description: 保养统计
     * @Date: 2018/2/1 15:34
     * @param map
     * @return
     */
    List<ChartsOverviewStatisticsView> queryUpkeepStatistics(Map map);


    /**
     * @Author: 杨青桦
     * @Description: 巡检统计
     * @Date: 2018/2/1 15:34
     * @param map
     * @return
     */
    List<ChartsOverviewStatisticsView> queryInspectionStatistics(Map map);



    /**
     * @Author: 杨青桦
     * @Description: 强检统计
     * @Date: 2018/2/1 15:34
     * @param map
     * @return
     */
    List<ChartsOverviewStatisticsView> queryCompulsoryStatistics(Map map);


    /**
     * @Author: 杨青桦
     * @Description: 维修记录气泡图
     * @Date: 2018/3/16 12:57
     * @param map
     * @return
     */
    List<Map<String,Object>> queryRepairRecords(Map map);

    /**
     * @Author: 杨青桦
     * @Description:  维修聊天记录
     * @Date: 2018/3/21 11:51
     * @param map
     * @return
     */
    List<ChatGroup> queryRepairChatGroups(Map map);

    /**
     * @Author: 杨青桦
     * @Description:  检查当前用户是否是群成员
     * @Date: 2018/3/28 18:01
     * @param groupId
     * @param userId
     * @return
     */
    int checkChatMember(@Param("groupId")Long groupId,@Param("userId")Long userId);


    /**
     * @Author: 杨青桦
     * @Description:  当前医院所有未完成的维修的聊天
     * @Date: 2018/3/28 19:09
     * @param hospitalId
     * @return
     */
    List<Long> queryRepairChatGroupIds(Long hospitalId);
}
